#ifndef CONTEXT_HH_
#   define CONTEXT_HH_

#	include "common/stl.h"
#   include "media/Sound.hh"

class Context
{
    public:
        Context();
        ~Context();

        /// NOTE: we need an OpenGL context to call its functions
        void init();
        void alterWindow();
        void setGLFeatures();

        #ifdef DEBUG
            /** prints debug informations about OpenGL
             ** \param full also prints
             **     GL_VENDOR, GL_RENDERER and GL_VERSION strings
             */
            void check(bool full = false);

            /** Checks if running OpenGL version is >= \param version.0
             ** \param version: minimal OpenGL major version
             */
            void minimalOpenGL(unsigned int version);
        #endif


    private:
        /// running OpenGL version
        int _glMajorVersion;
        int _glMinorVersion;

        ALCcontext* _soundContext;
        ALCdevice* _soundDevice;
};

#endif // !CONTEXT_HH_
